package ace.module.upms.core.impl.service;

import ace.cmp.util.model.dto.TreeNode;
import ace.module.upms.core.impl.dao.entity.UpmsMenu;
import java.util.List;

/**
 * @author caspar
 * @date 2023/8/18 17:42
 */
public interface UpmsMenuService {
  /**
   * 获取当前应用的用户菜单.
   *
   * @return 当前账户关联的管理菜单全部数据
   */
  List<UpmsMenu> getByCurrentAccount();

  /**
   * 获取当前应用关联的管理菜单.
   *
   * @param upmsAppId 权限应用id
   * @return 当前权限应用关联的管理菜单全部数据
   */
  List<UpmsMenu> getAllByUpmsAppId(Long upmsAppId);

  /**
   * 获获取当前应用关联的管理菜单，树形结构.
   *
   * @param upmsAppId 当前权限应用关联的管理菜单全部数据
   * @return 全部树形菜单数据
   */
  List<TreeNode<UpmsMenu>> getTreeAllByUpmsAppId(Long upmsAppId);

  /**
   * 查询全部树形菜单,根据外部应用分值.
   *
   * @param outType 外部应用类型
   * @param outId 外部应用id
   * @return 全部树形菜单数据
   */
  List<TreeNode<UpmsMenu>> getAllByOutTypeAndOutId(String outType, String outId);
}
